package com.sudo.boot.service.sys;

import com.mybatisflex.core.paginate.Page;
import com.mybatisflex.core.service.IService;
import com.sudo.boot.mapper.sys.entity.SysUser;
import com.sudo.boot.mapper.sys.model.bo.*;
import com.sudo.boot.mapper.sys.model.vo.SysUserDetailVo;
import com.sudo.boot.mapper.sys.model.vo.SysUserSimpleInfoVo;
import com.sudo.boot.mapper.sys.model.vo.SysUserPageVo;
import com.sudo.boot.mapper.sys.model.vo.SysUserSimpleVo;
import com.sudo.boot.service.common.BaseService;

import java.io.Serializable;

/**
 * 系统用户  服务层。
 *
 * @author admins
 * @since 2023-10-13
 */
public interface SysUserService extends IService<SysUser>, BaseService {

    Page<SysUserPageVo> page(SysUserBoPageQuery bo);

    void add(SysUserBoAdd bo);

    SysUserSimpleInfoVo simpleInfoById(Serializable id);

    void edit(SysUserBoEdit bo);

    void deleteById(Serializable id);

    Page<SysUserSimpleVo> pageByRoleId(SysUserBoPageQuery bo);

    void status(SysUserBoStatus bo);

    SysUserDetailVo detailById(Serializable id);

    void resetPassword(SysUserBoPassword bo);

    String simulateLogin(SysUserBoSimulateLogin bo);

    String viewPassword(Integer id);

}
